// 接收express 模块
const express = require('express')

// 创建路由对象
const router = express.Router()

// 导入用户路由 处理函数对应的模块
const user_handler = require('../router_handler/user')

// 导入 数据库操作模块
const db = require('../db/index')
//




// 检测mysql 模块能否正常工作
// db.query('select 1', (err, results)=> {
//   if (err) return console.log(err.message)
//   // 只要能打印出[ RowDataPacket { '1': 1 } ] 的结果， 就证明数据库连接正常
//   console.log(results)
// })

//  user 表中 修改数据
// const user = {id: 2, username: 'xiejie', password: '222222'}
// const sqlStr = 'UPDATE user SET ? WHERE id=?'
// db.query(sqlStr, [user, user.id],(err, results) => {
//   if (err) return console.log(err.message)
//   //console.log(results)
//   // http://127.0.0.1/api?name=xiejie&age=18 req.query = {name: xiejie, age: 18}
//   if (results.affectedRows ===1) {
//     console.log('修改数据成功')
//   }
// })

//  user 表中 插入数据
// const user = { username: 'xiejie', password: '111111'}
// const sqlStr = 'INSERT INTO user SET ?'
// db.query(sqlStr, user,(err, results) => {
//   if (err) return console.log(err.message)
//   //console.log(results)
//   // http://127.0.0.1/api?name=xiejie&age=18 req.query = {name: xiejie, age: 18}
//   if (results.affectedRows ===1) {
//     console.log('插入数据成功')
//   }
// })


// 获取用户列表
router.get('/user/list', (req, res) => {
  // 查询 user 表中所有数据
  res.send({
    status: 200,
    data: req.params,
    message: '请求成功'
  })
})

// nmp i @escook/express-joi 中间件，来实现自动对表单数据进行验证的功能
const expressJoi = require('@escook/express-joi')
const { reg_login_schema, reg_regUser_schema } = require('../schema/user')

// 注册新用户
// 在注册新用户的路由中，声明局部中间件，对当前请求中携带的数据进行验证
// 数据验证通过后，会把这次请求流转给后面的路由处理函数
// 数据验证失败后，终止后续代码的执行，并抛出一个全局的Error的错误，进入全局错误级别中间件中进行处理
router.post('/user/regUser', expressJoi(reg_regUser_schema), user_handler.regUser)

// 登录
router.post('/user/login', expressJoi(reg_login_schema), user_handler.login)


module.exports = router

